The present invention generally relates to a Computer Aided Manufacturing (CAM) system and method for automatic programming of lathes, such as multi-axis, computer numerically controlled (CNC) lathes for working on a fixed stock, and CNC Swiss-type lathes for working on a sliding stock. The system and method provides for the automatic production of a program that simultaneously controls a plurality of lathe processes for machining one or more workpieces by synchronous operation of a plurality of cutting tools and/or spindles. The system and method utilizes graphic symbols or icons to visualize data entry for combined and synchronized operations in different synchronous modes. These modes are automatically converted by the system and method of the present invention into executable CNC code for specific CNC machines.
A fabricated machine part is cut from a piece of material (blank stock or workpiece) having an original shape that is different from the final machined part. The machine can use various types of cutting tools to chip away all unnecessary material and shape the surface of the workpiece to that of the final part. When the machine is a lathe, the most common lathe operations or processes employed during fabrication of the part are facing, turning, grooving, threading and drilling of axial holes. A turning lathe spins the workpiece while plunging a tool with a non-rotating cutting edge (referred to as a fixed tool) into the workpiece to cut it. A variety of drilling and milling machines chip away material from the workpiece by plunging a tool with a rotating cutting bit (referred to as a rotary, or live, tool) having spinning cutting edges into the workpiece to cut it. Modern CNC lathes can be configured to perform milling and drilling of non-axial holes with rotary tools.
In the not so distant past all these operations were manually controlled. For example, a cylindrical surface was made on a lathe by holding a non-cylindrical stock in a rotating chuck and manually moving a cutting tool parallel and perpendicular to the stock""s axis of rotation. To make a hole, a machinist would fasten the workpiece to a stationary table, align the drill bit with the location of the desired hole, and lower the proper diameter rotating drill bit until a hole of the correct depth was produced. To make a slot, a rotating milling bit was first plunged into the stock""s surface, and then the stock was moved horizontally along the path of the desired slot.
FIG. 1(a) diagrammatically illustrates one example of a modern multi-axis CNC lathe 100. For purposes of describing lathe processes, a non-limiting orientation of general orthogonal axes X, Y and Z, and rotational directions A, B and C, about those axes, respectively, is illustrated in FIG. 1(a), with the Y-axis being perpendicular to the plane of the drawing sheet, and the positive direction of the Y-axis being towards the viewer. First workpiece 102 can be fed through main spindle 104, along the Z1-axis, in either the positive or negative direction. Guide bushing 106 can be used to support workpiece 102 as it is fed through the main spindle. Workpiece 102 can be rotated in the C1-direction about the Z1-axis by main spindle 104. Tool post 108 holds a plurality of cutting tools. The tools are aligned along the Y1-axis in FIG. 1(a), and therefore, only first cutting tool 110 is visible in the figure. The tools may be fixed or rotary tools, or a mix of these two types. Generally one tool from the tool post is actively working on workpiece 102 at a time. Tool post 108 is indexed for selection of the current active tool by moving the tool post along the Y1-axis. This type of tool post with linear indexing is sometimes referred to as a gang slide. Tool post 108 moves along the X1-axis so that the indexed active tool makes contact with workpiece 102 to cut into it. For example, moving actively indexed first tool 110 down along the X1-axis will result in cutting edge 111 of the first tool making contact with the workpiece. Tool post 108 may also include tools for working both first workpiece 102 and second workpiece 122 at the same time, such as a double-end drill, as further discussed below. Typically a double-end drill is mounted on a turret-type tool post. Tool post 108 and main spindle 104 may, or may not be, mounted to the same structural element. Sub-spindle 120 can be used either to support first workpiece 102 during main spindle operations, or hold second workpiece 122 while lathe processes are performed on it. Second workpiece 122 is created when the sub-spindle (with no second workpiece) holds the front end 102a of first workpiece 102 while a tool from tool post 108 is used to cut off a portion of the first workpiece (cut-off process) that will form the second workpiece. Sub-spindle 120 can move along the Z2-axis and X2-axis, and rotate second workpiece 122 in the C2-direction around the Z2-axis. Lathe processes on second workpiece 122 in sub-spindle 120 may or may not be performed at the same time as lathe operations on first workpiece 102 in main spindle 104. Tool post 130 holds a plurality of tools 132 that can be indexed so that the active tool can work on the front end 102a of first workpiece 102. In this example, sub-spindle 120 is located on the same slide as tool post 130, and therefore, the tools that are mounted on tool post 130 and sub-spindle 120 share the same coordinate system (X2, Y2, Z2). Tool post 130 is a linearly indexing tool slide that moves along the Z2-axis to engage the front end 102a of first workpiece 102 and indexes tools along the X2-axis. Tool post 130 is sometimes called an end working tool post. Tool post 140 holds a plurality of tools 142 that can be indexed so that an active tool can work on the back end 122b of second workpiece 122. Tool post 140 may be a linearly indexing tool device that moves along the Z3-axis to engage the back end of workpiece 122 and indexes tools along the X3-axis. Alternatively tool post 140 may be a rotary indexing tool device, which is called a turret. The tool turret would move along the Z3-axis to engage the back end of workpiece 122 and index tools by rotating in the C3-direction about the Z3-axis. Rotary (live) tools cutting on the front end or back end of a workpiece are referred to as Z-oriented tools. Rotary tools cutting along the X-axis are sometimes referred to as cross working or X tools. The multi-axis CNC lathe described in FIG. 1(a) is known as a Swiss-type lathe. There are many variants of the Swiss-type lathe shown in FIG. 1(a). For example, a particular lathe may have a further multiplicity of tool posts for working on stock and/or two or more sub-spindles.
FIG. 1(b) illustrates one variant of the multi-axis CNC lathe shown in FIG. 1(a). Lathe 100 in FIG. 1(a) is known as a left hand lathe, since main spindle 104 is oriented to the left of sub-spindle 120. Conversely lathe 101 in FIG. 1(b) is known as a right hand lathe since main spindle 104 is oriented to the right of sub-spindle 120.
FIG. 1(c) illustrates another variant of a multi-axis CNC lathe that is sometimes called a turning center or turn-mill center. CNC lathe 99 in FIG. 1(c) is used to produce a part having curvilinear inner and outer surfaces of revolutions, such as solid or hollow cylinders, cones, semi-spheres, or a part with surface features created by rotational movement of the part including grooves and threads. To create a round surface, main spindle 105 rotates first workpiece 103 in the C1-direction about the Z-axis while an indexed cutting tool, such as tool 115 or tool 117, moves along the X-axis and Z-axis in a plane coincident to the workpiece""s rotational axis to engage and cut the first workpiece. Sub-spindle 119 can be used to support the front end of workpiece 103 or hold a second workpiece 123 while lathe processes are performed on it. Sub-spindle 119 can rotate workpiece 123 in the C2-direction about the Z-axis, while an indexed cutting tool, such as tool 118 or tool 121, moves along the X-axis and Z-axis in a plane coincident to the workpiece""s rotational axis to engage and cut the second workpiece. In the non-limiting configuration shown in FIG. 1(c), either one tool from tool turret 107 or 109, or two tools in simultaneous use, one from each of these two turrets, may be used to cut first workpiece 103. Similarly, either one tool from tool turrets 112 or 114, or two tools in simultaneous use, one from each of these two turrets, may be used to cut second workpiece 123. The plurality of tools on each of the tool turrets are indexed by rotation about the turret""s centerline. A twin-turret, twin-spindle turn-mill center in this example is similar to a Swiss-type lathe in the sense that it can also use bar stock, a workpiece cut-off process, workpiece transfer from the main to the sub-spindle, and simultaneous machining of a first workpiece on the main spindle and a second workpiece on the sub-spindle. For present technology, Swiss-type lathes are most often used to produce parts with a relatively small cross section and long length, typically with a ratio of 3:1 (length-to-cross section) or greater. This is why a guide bushing is essential for support of a workpiece during machining on a Swiss-type lathe. Without the guide bushing the workpiece is susceptible to bending. Conversely turn-mill centers are used for machining larger parts. Also, a turn-mill center can be used to machine a discrete part that is clamped in a spindle, as opposed to a Swiss-type lathe, that can use a continuously feed bar stock. As technology progresses, it is likely that the operational differences between a Swiss-lathe and turn-mill center will become less distinct. For the purpose of defining the synchronous modes and visual CAM system of the present invention, there is no significant differences between a Swiss-type lathe and a turn-mill center. For the purposes of the present invention, both a Swiss-type lathe and turning center can be defined as a multi-axis lathe.
FIG. 1(d) illustrates another variant of a multi-axis CNC lathe that has a single spindle 105 and two tool turrets 107 and 109. In this configuration either one tool from either of the two turrets, or two tools in simultaneous use, one from each of the two tool turrets, may be used to cut workpiece 103.
Each mechanism (i.e., main spindle, sub-spindle, linear tool slide, tool turret, individual tool and the like) in a multi-axis lathe is controlled by a separate digital servo system and may constitute a separate lathe process. Machining of workpieces to fabricate parts in a multi-axis lathe may involve simultaneous utilization of one, two, three or more active tools for a single, or multiple, workpieces in the main spindle and/or in the sub-spindle. Such versatility not only greatly increases productivity of the machining process, but also facilitates significant improvement in precision. The latter is achieved by minimizing the repositioning of the workpiece when the production process involves moving workpieces that constitute semi-finished parts between several ordinary CNC lathes and mills.
Programming multi-axis lathes in general, and Swiss-type lathes in particular, present a challenge. Programs are primarily manually written. The instructions for every move of each tool and workpiece in the main spindle or a sub-spindle are specifically defined. Not only does each tool path have to be calculated and entered into the numerically controlled computer for the lathe, but in the case of simultaneous multi-tool machining, the operations must also be synchronized. Due to complicated parameters, such as the number of axes, this work is tedious and requires a great deal of concentration and experience. For Swiss-type lathes, all tool movements are referenced to the front edge of the sliding stock, which further complicates programming of the machine tools that are used.
Synchronization of multiple processes on a CNC lathe is implemented in various schemes. U.S. Pat. No. 5,870,306 describes a method based upon priority information that is used to insert specific machine code commands into programs for synchronized processes to force tools and/or spindles to work simultaneously. Another method incorporates special xe2x80x9cwaitxe2x80x9d states, which instructs the faster process to stop and wait until a slower process catches up so that the two processes can be executed simultaneously.
CAM systems specialize in the conversion of the geometrical information for a part""s design into CNC code. However, most of these systems have difficulty in handling parts where machining requires that a combination of turning, milling, drilling and threading operations be applied to different surfaces. Most existing CAM systems can only handle one type of machining for one surface.
A visual CAM system (the CAM system) described in U.S. Pat. No. 6,112,133 (the 133 patent), which is incorporated herein in its entirety, divides the part""s surface into xe2x80x9ca plurality of faces, each face corresponding to a surface of the part defined by the tool and work piece orientation, boundary, and type of machining functionxe2x80x9d. The CAM system has a graphical user interface (GUI) and is capable of automatic G-code generation, either in an off-line computer or in a computer integrated into a multi-axis lathe. Further the 133 patent teaches the identification of machined part features such as holes, slots, pockets, contours, threads, chamfers, bosses or fillets. For each feature, a set of tools and operations, or processes, are then defined. Combined with the geometry information for the part, the set of tools and operations form a group of operations related to machining a part""s surface. The CAM system in the 133 patent generates a sequential list of processes in the form of a process table. The method in the 133 patent further includes a machine specific postprocessor that converts general machining information into a specific instruction code for a complex CNC machine.
The 133 patent discloses special synchronization entry to schedule operations to avoid tool collisions from machines with multiple simultaneously operating tool-holding turrets and multiple spindles. See col. 7, lines 27-30 of the 133 patent. Further the 133 patent discloses CNC programs may include special code that synchronize execution of parallel processes. See col. 7, lines 47-49. The 133 patent generally teaches a method of rules for reordering the display rows in the process table to a lathe""s operational sequence. However, the 133 patent does not teach the method of how synchronous codes can be entered for various modes of operation of a multi-axis lathe, and how these modes can be classified. Further the 133 patent does not teach a user of the CAM system how these classified synchronous modes can be visually grouped and then translated into final CNC code to execute the synchronous operations on a particular lathe. Without these advantages the user of the CAM system disclosed in the 133 patent must remember the method of the disclosed rules for applying synchronization code. This method is neither easy or intuitive in comparison with a visual graphic system.
Therefore there is the need for classifying all of the synchronous modes of operation of a multi-axis lathe. Further there is a need for a universal system of visual programming of these synchronous modes and arranging them into synchronization groups of priority lathe processes for a multi-axis lathe that can be processed into final CNC code for use with a specific lathe.
In one aspect, the invention is a method of grouping, relative to synchronous execution of lathe operations on a multi-axis lathe, all operations of the lathe. A visual system and method for programming all operations relative to synchronous execution of the lathe operations is provided. Synchronous modes and representative graphic synchronous mode icons are provided in the visual system and method. A visual system and method is provided for selecting a specific synchronous mode and parameters related to a lathe operation associated with the specific synchronous mode.
These and other aspects of the invention are set forth in the specification and appended claims.